/**
 * @Title: CameraPhotoDao.java
 * @Package com.sinotn.ks.data.dao
 * @Description: TODO
 * Copyright: Copyright (c) 2015
 * Company:北京信诺软通
 */
package com.sinotn.ks.node.camera.dao;

import java.util.List;
import java.util.Map;

import com.sinotn.Page;
import com.sinotn.ks.node.camera.dao.cond.CameraPhotoCond;
import com.sinotn.ks.node.camera.vo.CameraPhotoVO;

/**
 * 摄像监考记录Dao接口类

 * @Title CameraPhotoDao.java
 * @Package com.sinotn.ks.data.dao
 * @Description
 * Copyright: Copyright (c) 2017
 * Company:北京信诺软通
 *
 * @author <a href="mailto:liyunfeng@sinotn.com">李云峰</a>
 * @date 2017年06月22日 下午22:09:34
 * @version V1.0
 */
public interface CameraPhotoDao {
	int updateAnalyse(String id, byte state, int faceCount,int similar);
	/**
	 * 查询系统摄像拍照监考记录总数。
	 * @return
	 * @auth <a href="mailto:liyunfeng@sinotn.com">李云峰</a>
	 * @date 2017年06月22日 下午22:09:34
	 */
	int selectCameraPhotoCount();

	/**
	 * 分页查询摄像拍照监考记录列表
	 * @param pageIdx
	 * @param pageSize
	 * @param cond
	 * @return
	 * @auth <a href="mailto:liyunfeng@sinotn.com">李云峰</a>
	 * @date 2017年06月22日 下午22:09:34
	 */
	Page selectCameraPhotoByPage(int pageIdx, int pageSize, CameraPhotoCond cond);

	/**
	 * 通过条件查询匹配的监考照片信息
	 * @param cond
	 * @return
	 * @auth <a href="mailto:liyunfeng@sinotn.com">李云峰</a>
	 * @date 2017年6月23日 下午6:42:33
	 */
	List<CameraPhotoVO> selectCameraPhotos(int pageIdx, int pageSize, CameraPhotoCond cond);

	/**
	 * 通过ID查询监考拍照监考记录
	 * @param id
	 * @return
	 * @auth <a href="mailto:liyunfeng@sinotn.com">李云峰</a>
	 * @date 2017年6月22日 下午10:32:47
	 */
	CameraPhotoVO selectCameraPhotoById(String id);

	/**
	 * 新增摄像拍照监考记录记录
	 * @param cameraPhotoVO
	 * @auth <a href="mailto:liyunfeng@sinotn.com">李云峰</a>
	 * @date 2017年06月22日 下午22:09:34
	 */
	void insertCameraPhoto(CameraPhotoVO cameraPhotoVO);

	/**
	 * 修改摄像拍照监考记录记录
	 * @param cameraPhotoVO
	 * @auth <a href="mailto:liyunfeng@sinotn.com">李云峰</a>
	 * @date 2016年12月25日 下午1:46:59
	 */
	void updateCameraPhoto(CameraPhotoVO cameraPhotoVO);

	/**
	 * 删除摄像拍照监考记录
	 * @param id
	 * @auth <a href="mailto:liyunfeng@sinotn.com">李云峰</a>
	 * @date 2017年06月22日 下午22:09:34
	 */
	void deleteCameraPhotoById(String id);

	/**
	 * 获取所有警告信息的照片个数,根据考场ID分组
	 * @return
	 * @auth <a href="mailto:liyunfeng@sinotn.com">李云峰</a>
	 * @date 2017年6月23日 下午4:22:44
	 */
	Map<String, Integer> selectWarningPhotos(CameraPhotoCond cond);

	/**
	 * 批量删除照片
	 * @param photoList
	 * @auth <a href="mailto:liyunfeng@sinotn.com">李云峰</a>
	 * @date 2017年7月13日 下午6:08:37
	 */
	void deleteMultiPhotos(List<CameraPhotoVO> photoList);

	/**
	 * 获取考试正常流的3张照片
	 * 1. 登录照片（以最后一次登录考试为准）
	 * 2. 考试期间照片（交卷前拍的最后一张照片为准）
	 * 3. 交卷拍的照片
	 * @param examineeId
	 * @param roomId
	 * @return
	 * @auth <a href="mailto:liyunfeng@sinotn.com">李云峰</a>
	 * @date 2017年7月17日 下午4:00:35
	 */
	List<CameraPhotoVO> selectNormalPhotoInExam(String examineeId, String roomId);
	/**
	 * 根据条件查询记录数
	 * @param cond
	 * @return
	 * @auth <a href="mailto:xieqj@fstec.com">谢启进</a>
	 * @date 2022年4月22日 下午4:03:50
	 */
	int selectCount(CameraPhotoCond cond);
}